package com.jwell.oms.base.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.jwell.framework.mybatis.mapper.AbstractMapper;
import com.jwell.oms.base.entity.BaseCustom;

/**
 * @FileName:    BaseCustomMapper.java
 * @Company:     成都积微物联电子商务有限公司
 *
 * @author:      chen
 * @version      V1.0
 * @date:        2016年9月27日 上午9:25:08
 *
 * @Description: 客商主表信息
 *
 */
public interface BaseCustomMapper extends AbstractMapper<BaseCustom> {

    /**
     * 模糊查询企业信息+银行信息
     * @param map	参数
     * @return		list<map>
     * @author wangLuoLin
     * @date 2016年10月11 17:36:17
    */
    List<Map<String, Object>> findBankKey(Map<String, Object> map);
    

    /**
     * 模糊查询
     * keyword:代码、名称、简称、助记码
     * @param keyword       关键字
     * @param baseCustom 实体
     * @return      list
     * @author wangLuoLin
     * @date 2016年10月11 16:19:56
     */
    List<BaseCustom> findKey(@Param("keyword") String keyword, @Param("baseCustom") BaseCustom baseCustom);

    /**
     * 查询列表 带分页
     * @param baseCustom
     * @return list
     */
    List<BaseCustom> findList(BaseCustom baseCustom);

    /**
     * 根据账套编码获取实体
     * @param accountCode 账套编码
     * @return map
     * @author wangLuoLin
     * @date 2016年11月07 21:48
    */
    Map<String, Object> findAccount(String accountCode);
    
    /**
     * 通过id查询对象	
     * @param id
     * @return BaseCustom
     * @author qinyu
     * @date 2016年11月17日
     */
    BaseCustom findById(@Param("customId") Long customId);
    
    
    /**
     * 查询 客商名称 
     * @param customName
     * @param idCard
     * @return
     * @author chen
     * @date 2016年11月17日
     */
    int getCustomName(@Param("customName")String customName, @Param("id")Long id);
    
    /**
     * 查询 身份证 是否重复
     * @param customName
     * @param idCard
     * @return
     * @author chen
     * @date 2016年11月17日
     */
    int getIdCard(@Param("idCard")String idCard, @Param("id")Long id);

    /**
     * 根据客商代码获取非攀客商代码
     * @param string
     * @return
     * @author zhangzhiyuan
     * @date 2016年12月23日
     */
	String getPgCustomCode(@Param("customCode") String customCode);
	
	/**
	 * 根据客商代码获取客商报表模板信息
	 * @param customCode
	 * @return
	 * @author liuyangbin
	 * @date 2016年12月27日
	 */
	Map<String, Object> getRptTemplet(String customCode);
	
	/**
	 * 修改报表模板
	 * @param cgTemplate
	 * @param xsTemplate
	 * @param id
	 * @return
	 * @author chen
	 * @date 2016年12月28日
	 */
	int updateTemplate(@Param("cgTemplate")Long cgTemplate,@Param("xsTemplate")Long xsTemplate,@Param("id")Long id);
	
	/**
	 * 获取客商总数
	 * @return
	 * @author qinyu
	 * @date 2017年1月4日
	 */
	int getCountNum();
	
	/**
	 * 根据客商代码获取实体
	 * @param customCode
	 * @return
	 * @author chen
	 * @date 2017年1月9日
	 */
	BaseCustom getCode(@Param("customCode")String customCode);

	/**
	 * 收货确认函专用下拉框
	 * @param keyword
	 * @param baseCustom
	 * @return
	 * @author qinyu
	 * @date 2017年1月18日
	 */
	List<BaseCustom> findByKey(@Param("keyword") String keyword, @Param("baseCustom") BaseCustom baseCustom);
	
	/**
	 * 根据客商名称获取客商信息
	 * @param customName
	 * @return
	 * @author liuyangbin
	 * @date 2017年1月24日
	 */
	BaseCustom getByCustomName(String customName);
}